﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Reap.Core.Caching {

	/// <summary>
	/// Represents a NullCacheManager
	/// Yuhao 2014.6.27
	/// </summary>
	public class NullCacheManager:ICacheManager {
		

		/// <summary>
		/// Gets or sets the value associated with the specified key.
		/// </summary>
		/// <typeparam name="T">Type</typeparam>
		/// <param name="key">Key</param>
		/// <returns>The value associated with the specified key</returns>
		public virtual T Get<T>(string key)
		{
			return default(T);
		}

		/// <summary>
		/// Adds the specified key and object to the cached
		/// </summary>
		/// <param name="key">key</param>
		/// <param name="data">Data</param>
		/// <param name="cacheTime">Cache time</param>
		public virtual void Set(string key, object data, int cacheTime) {
			
		}

		/// <summary>
		/// Gets a value indicating whether the value associated the specified key is cached.
		/// </summary>
		/// <param name="key"></param>
		/// <returns></returns>
		public virtual bool IsSet(string key)
		{
			return false;
		}

		/// <summary>
		/// Removes the value with the specified key from the cache
		/// </summary>
		/// <param name="key"></param>
		public virtual void Remove(string key) {
			
		}

		/// <summary>
		/// Removes items by pattern
		/// </summary>
		/// <param name="pattern">pattren</param>
		public virtual void RemoveByPattern(string pattern) {
			
		}

		/// <summary>
		/// Clear all cache data
		/// </summary>
		public virtual void Clear() {
			
		}


	}
}
